<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
<topic id="topic1">
  <title>CREATE TEXT SEARCH PARSER</title>
  <body>
    <section>
      <title>Description</title>
      <p id="sql_command_desc">Defines a new text search parser.</p>
    </section>
    <section>
      <title>Synopsis</title>
    </section>
    <codeblock id="sql_command_synopsis">CREATE TEXT SEARCH PARSER name (
    START = start_function ,
    GETTOKEN = gettoken_function ,
    END = end_function ,
    LEXTYPES = lextypes_function
    [, HEADLINE = headline_function ]
)</codeblock>
    <section id="section3">
      <title>Description</title>
      <p><codeph>CREATE TEXT SEARCH PARSER</codeph> creates a new text search parser. A text search
        parser defines a method for splitting a text string into tokens and assigning types
        (categories) to the tokens. A parser is not particularly useful by itself, but must be bound
        into a text search configuration along with some text search dictionaries to be used for
        searching.</p>
      <p>If a schema name is given then the text search parser is created in the specified schema.
        Otherwise it is created in the current schema.</p>
      <p>You must be a superuser to use <codeph>CREATE TEXT SEARCH PARSER</codeph>. (This
        restriction is made because an erroneous text search parser definition could confuse or even
        crash the server.)</p>
      <p>Refer to <xref href="../../admin_guide/textsearch/full-text-search.html#full-text-search" format="html" scope="external">Using Full Text Search</xref>
        for further information.</p>
    </section>
    <section id="section4">
      <title>Parameters</title>
      <parml>
        <plentry>
          <pt><codeph><varname>name</varname></codeph></pt>
          <pd>The name of the text search parser to be created. The name can be
            schema-qualified.</pd>
        </plentry>
        <plentry>
          <pt><codeph><varname>start_function</varname></codeph></pt>
          <pd>The name of the start function for the parser.</pd>
        </plentry>
        <plentry>
          <pt><codeph><varname>gettoken_function</varname></codeph></pt>
          <pd>The name of the get-next-token function for the parser.</pd>
        </plentry>
        <plentry>
          <pt><codeph><varname>end_function</varname></codeph></pt>
          <pd>The name of the end function for the parser.</pd>
        </plentry>
        <plentry>
          <pt><codeph><varname>lextypes_function</varname></codeph></pt>
          <pd>The name of the lextypes function for the parser (a function that returns information
            about the set of token types it produces).</pd>
        </plentry>
        <plentry>
          <pt><codeph><varname>headline_function</varname></codeph></pt>
          <pd>The name of the headline function for the parser (a function that summarizes a set of
            tokens).</pd>
        </plentry>
      </parml>
      <p>The function names can be schema-qualified if necessary. Argument types are not given,
        since the argument list for each type of function is predetermined. All except the headline
        function are required.</p>
      <p>The arguments can appear in any order, not only the one shown above.</p>
    </section>
    <section id="section7">
      <title>Compatibility</title>
      <p>There is no <codeph>CREATE TEXT SEARCH PARSER</codeph> statement in the SQL standard.</p>
    </section>
    <section id="section8">
      <title>See Also</title>
      <p><codeph><xref href="ALTER_TEXT_SEARCH_PARSER.xml#topic1" type="topic" format="dita"
          /></codeph>, <codeph><xref href="DROP_TEXT_SEARCH_PARSER.xml#topic1" type="topic"
            format="dita"/></codeph></p>
    </section>
  </body>
</topic>
